Proposta de análise da cobertura (principalmente florestal) do município do Rio de Janeiro em diferentes anos, através de ferramentas espaciais do R.

Aqui apresentarei apenas a análise apra um ano: 2006.

A proposta é fazermos uma classificação não supervisionada baseada em estatística espacial, para os anos pertinentes aos projeto FAPERJ Mutirão de reflorestamento. A partir da classificação não supervisionada, podemos atribuir a cada classe, a sua respectiva cobertura/uso.
Com isso:

  1. Ganharemos tempo
  2. Teremos todo o processo documentado por script e funções do R
  3. Teremos a possibilidade de ampliarmos a gama de análise dos dados

Dados básicos da análise

  1. Imagem de satélite
  2. Área de estudo
# Plotting input data
plotRGB(rj_2016, r=4, g=3, b=2, stretch='hist')
plot(rj, add=TRUE)

Algorimos de classificação não supervisionada

Na função que criamos, podemos usar dois algoritmos básicos: Kmeans e randomForest; No exemplo dado, foi usado apenas o algoritmos Kmeans, que tem como vantagem o uso de todos os pixels da imagem na análise de grupamento.

# Running cluster analysis (Automatic classification)
source('~/Projetos/SegmentationFCT/segmentation.R')
args(segmentation)
segmentation(envLayer = rj_2016_2, studyArea = rj, projName = "RJ_2016", 
          randomforest = FALSE, random.pt = NULL, Kmeans = TRUE, ngroup = 6, 
          polygonize = FALSE, seed = 123) 

Resultado

# Result
RJ_2016_seg <- raster('./km_segmentation_RJ_2016.tif')
plot(RJ_2016_seg, col=pallete)

# Result
par(mfrow=c(2,1))
plotRGB(rj_2016, 4, 3, 2, stretch='hist')
plot(RJ_2016_seg, col=pallete)

Basta portanto, identificar a cada classe criada o respectivo uso e/ou cobertura da terra. O tempo de processamento não é grande. E, depois, podemos fazer uma mascara para vermos a evolução das áreas do mutirão, já que estamos analisando todo o município.
Visualmente, podemos ver que:

  1. classe 1, com cor verde: poderia ser classificada como áreas florestais
  2. classe 2, com cor roxa (ou coisa parecida): seriam as áreas urbanas
  3. classe 3, com cor laranja: seriam áreas florestais, mas com alguma diferença da classe 1
  4. classe 4, em amarelo: pouco aparecem, seriam áreas de areia
  5. classe 5, em azul: seriam corpos d’água
  6. classe 6, em vermelho: áreas urbanas, mas com resposta diferente da classe 2

Análise dos resultados

Um pequeno exemplo de pós processamento é vermos como cada classe identificada está se comportando em relação às bandas da imagem de satélite (resposta espectral).
O exemplo dado é muito básico, mas é possível evoluimos bastante nisso.

# Analysing band relation with category
graph <- addLayer(rj_2016, RJ_2016_seg)
class.df <- (as.data.frame(graph))
head(class.df)
colnames(class.df)<-c('um','dois','tres','quatro','cinco','seis','class')

#Plot
library(ggplot2)
ggplot(class.df, aes(x=um, y=dois, colour=as.factor(class))) + geom_point()
ggsave('./class_analysis.png')

Análise das classes em função da banda 1 e 2

Perspectivas futuras

Ainda não pude pesquisar, mas imagino que existam pacotes espacíficos do R para Sensoriamento Remoto, que poderão nos ajduar bastante nas análises.
Acho que assim que terminar com as modelagens para Mata Atlantica, poderiamos ver isso.